Predicting API storytelling mapping

ABSTRACT

A first indication from a user is received. The indication includes a task to be performed using at least one application programming interface. A machine learning model is determine. At least one application programming interface is determined using the machine learning model and the request. The at least one application programming interface is provided to the user.

BACKGROUND

The present invention relates generally to the field of applicationprogram interface (API), and more particularly to API storyboards basedon requests of a user.

An API is a set or group of routines, protocols, and/or tools forbuilding or creating software applications. The API specifies howsoftware components should interact and APIs can be used when programinggraphical user interface components. An API expresses a softwarecomponent in terms of the operations, inputs, outputs, and underlyingtypes of the software components. The API can define functionalitiesthat are independent of their respective implementation and this allowsdefinitions and implementations to vary without comprising theinterface.

SUMMARY OF THE INVENTION

Embodiments of the present invention include a method, computer programproduct, and system for predicting application programming interfacestorytelling mapping. In one embodiment, a first indication from a useris received. The indication includes a task to be performed using atleast one application programming interface. A machine learning model isdetermine. At least one application programming interface is determinedusing the machine learning model and the request. The at least oneapplication programming interface is provided to the user.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a functional block diagram of a data processingenvironment, in accordance with an embodiment of the present invention;

FIG. 2 depicts a flowchart of operational steps of a program forpredicting application programming interface storytelling mapping, inaccordance with an embodiment of the present invention;

FIG. 3 depicts an example user interface for a program for predictingapplication programming interface storytelling mapping, in accordancewith an embodiment of the present invention; and

FIG. 4 depicts a block diagram of components of the computer of FIG. 1,in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the present invention provide for predicting applicationprogramming interface storytelling mapping. Embodiments of the presentinvention provide for receiving a request from a user to solve a problemor complete a task. Embodiments of the present invention provide fordetermining a group of storyboards or API(s) that will solve the requestreceived previously. Embodiments of the present invention provide forpresenting the group of storyboards or API(s) to the user. Embodimentsof the present invention allow for filtering the group of storyboards orAPI(s). Embodiments of the present invention allow for presenting amodified group of storyboards or API(s) based on the filteringrequested. Embodiments of the present invention allow for presenting themodified group of storyboards or API(s) to the user. Embodiments of thepresent invention recognize that the term storyboards may be usedinterchangeably with API(s) or a group of API(s).

Embodiments of the present invention recognize that developers need toevaluate each product (i.e., API) to determine if the API supports therequired capabilities and functionality needed by the developer.Embodiments of the present invention recognize that there is an everincreasing large amount of APIs that span a wide range of capabilities.Embodiments of the present invention recognize that a developer needs topiece together API invocation patterns through reading documents,following examples, or trial and error. Embodiments of the presentinvention recognize that API connections are not obvious. Embodiments ofthe present invention recognize that storyboards (i.e., groupings ofAPIs that perform a function) can be very complex.

The present invention will now be described in detail with reference tothe Figures.

FIG. 1 is a functional block diagram illustrating a data processingenvironment, generally designated 100, in accordance with one embodimentof the present invention. FIG. 1 provides only an illustration of oneimplementation and does not imply any limitations with regard to thesystems and environments in which different embodiments may beimplemented. Many modifications to the depicted embodiment may be madeby those skilled in the art without departing from the scope of theinvention as recited by the claims.

An embodiment of data processing environment 100 includes computingdevice 110 interconnected over network 102. Network 102 can be, forexample, a local area network (LAN), a telecommunications network, awide area network (WAN) such as the Internet, or any combination of thethree, and include wired, wireless, or fiber optic connections. Ingeneral, network 102 can be any combination of connections and protocolsthat will support communications between computing device 110 and anyother computer connected to network 102, in accordance with embodimentsof the present invention.

In an embodiment, computing device 110 may be a laptop, tablet, ornetbook personal computer (PC), a desktop computer, a personal digitalassistant (PDA), a smart phone, camera, video camera, video device orany programmable electronic device capable of communicating with anycomputing device within data processing environment 100. In certainembodiments, computing device 110 collectively represents a computersystem utilizing clustered computers and components (e.g., databaseserver computers, application server computers, etc.) that act as asingle pool of seamless resources when accessed by elements of dataprocessing environment 100, such as in a cloud computing environment,discussed previously. In general, computing device 110 is representativeof any electronic device or combination of electronic devices capable ofexecuting computer readable program instructions. In an embodiment,computing device 110 may include components as depicted and described indetail with respect to FIG. 3, in accordance with embodiments of thepresent invention.

In an embodiment, computing device 110 includes application programminginterface (API) program 112 and API repository 114. In an embodiment,API program 112 is a program, application, or subprogram of a largerprogram that predicts API storytelling mapping. Storytelling mapping, inreference to APIs, is an organized layout of multiple APIs to perform anoverall task. Additionally, storytelling mapping is a set of APIs thatare used in conjunction with each other to perform an overall task. Forexample, the storytelling mapping for perform an eCommerce checkout flow(i.e., a checkout process integrated with a sales application) mayinclude an AddToCart API, CheckInventor API, UpdateCartPrice API,AddCoupon API, etc. and each of these APIs perform specific functions.In an alternative embodiment, API program 112 may be located on anyother device accessible by computing device 110 via network 102. In anembodiment, API repository 114 may include information about APIs andthe applications the APIs are commonly found in including the frequencyof the order the APIs are found in applications. In an alternativeembodiment, API repository 114 may be located on any other deviceaccessible by computing device 110 via network 102.

In an embodiment, API program 112 may predict API storytelling mappingbased on input received from a user. In an embodiment, API program 112may receive a request from a user to perform a task that solves aproblem in an API environment. In an embodiment, API program 112determines at least one storyboard (i.e., API patterns) to solve theproblem using the information found in API repository 114. In anembodiment, API program 112 presents the storyboard(s) to the user andthe storyboard(s) include one or more API to solve the problem presentedby the user. In an embodiment, API program 112 receives input from auser to filter the previously presented storyboard(s). In an embodiment,API program 112 determines a modified at least one storytelling mappingto solve the problem using the information found in API repository 114.In an embodiment, API program 112 presents the modified storyboard(s) tothe user and the modified storyboard(s) include one or more API to solvethe problem presented by the user. In an embodiment, API program 112determines the at least one storyboard using a machine learning modeland when a user makes changes to the determined at least one storyboardthe machine learning model is updated.

A machine learning model includes the construction and implementation ofalgorithms that can learn from and make predictions on data. Thealgorithms operate by building a model from example inputs in order tomake data-driven predictions or decisions, rather than followingstrictly static program instructions. In an embodiment, the model is asystem which explains the behavior of some system, generally at thelevel where some alteration of the model predicts some alteration of thereal-world system. In an embodiment, a machine learning model may beused in a case where the data becomes available in a sequential fashion,in order to determine a mapping from the dataset to correspondinglabels. In an embodiment, the goal of the machine learning model is tominimize some performance criteria using a loss function. In anembodiment, the goal of the machine learning model is to minimize thenumber of mistakes when dealing with classification problems. In yetanother embodiment, the machine learning model may be any other modelknown in the art. In an embodiment, the machine learning model may be aSVM “Support Vector Machine”. In an alternative embodiment, the machinelearning model may be any supervised learning regression algorithm. Inyet another embodiment, the machine learning model may be a neuralnetwork.

In any embodiment, API program 112 includes a user interface. A userinterface is a program that provides an interface between a user and anapplication. A user interface refers to the information (such asgraphic, text, and sound) a program presents to a user and the controlsequences the user employs to control the program. There are many typesof user interfaces. In one embodiment, the user interface may be agraphical user interface (GUI). A GUI is a type of user interface thatallows users to interact with electronic devices, such as a keyboard andmouse, through graphical icons and visual indicators, such as secondarynotations, as opposed to text-based interfaces, typed command labels, ortext navigation. In computers, GUIs were introduced in reaction to theperceived steep learning curve of command-line interfaces, whichrequired commands to be typed on the keyboard. The actions in GUIs areoften performed through direct manipulation of the graphics elements.For example, client application may be a web browser, a databaseprogram, etc.

In an embodiment, computing device 110 may include API repository 114.In an embodiment, API repository 114 may include information aboutpreset storyboards that include one or more APIs that are groupedtogether to perform a certain task. In an embodiment, the presetstoryboards may be created by a user specifically for certain tasks. Inan alternative embodiment, the preset storyboards may be created frominformation about preset storyboards from applications that are inputinto API program 112 for determining optimal and common storyboards thathave an order or combination of APIs to perform a certain task. In anembodiment, API repository 114 may include information forrefining/filtering API storyboards (i.e. storyboards for financeapplications, retail applications, electronic goods applications, etc.).In an embodiment, API repository 114 may include information about linksbetween APIs, including how information is passed between APIs and APIsthat function together. In an embodiment, information about storyboardsused in already created applications may be input into API repository114 and if there are updates to the storyboards used in already createdapplications this would be input into API repository 114. In anembodiment, API repository 114 may include a machine learning model usedto determine storyboards to perform certain tasks and the machinelearning model may be updated based on user input. In an embodiment, APIrepository 114 may include a machine learning model applied to a groupas a whole or smaller subsets of machine learning model(s) that may beapplied to smaller subset groups.

API repository 114 may be implemented using any volatile or non-volatilestorage media for storing information, as known in the art. For example,API repository 114 may be implemented with a tape library, opticallibrary, one or more independent hard disk drives, multiple hard diskdrives in a redundant array of independent disks (RAID), solid-statedrives (SSD), or random-access memory (RAM). Similarly, API repository114 may be implemented with any suitable storage architecture known inthe art, such as a relational database, an object-oriented database, orone or more tables.

FIG. 2 is a flowchart of workflow 200 depicting operational steps forpredicting API storytelling mapping based on input received from a user.In one embodiment, the steps of the workflow 200 are performed by APIprogram 112. In an alternative embodiment, steps of the workflow can beperformed by any other program while working with API program 112. In apreferred embodiment, a user, via a user interface discussed previously,can invoke workflow 200 upon determining that the user has a task thatcould be solved using storytelling mapping in an API environment.

FIG. 3 is an example user interface 300 for a program for predictingapplication programming interface storytelling mapping, in accordancewith an embodiment of the invention. FIG. 3 will be used as an examplethroughout the discussion of workflow 200.

API program 112 receives a request (step 205). In an embodiment, APIprogram 112 may receive a request to perform a task from user via a userinterface, discussed previously. For example, as shown in FIG. 3, a usermay request, via the user interface, that the user would like to know“How can I add checkout to my current web application?” 302. API program112 performs natural language processing on the request to determine thetask or a problem to be solved by the request. For example, here APIprogram 112 may determine that “checkout” is an API service that theuser would like to add to the “web application” of the user. In analternative embodiment, API program 112 may receive the request from aprogram or operating system of a device that indicates that a certaintask needs to be performed in a API environment. In an embodiment, APIprogram 112 may request additional information from the user if APIprogram 112 cannot determine what the user is requesting.

Natural language processing is a field of computer science, artificialintelligence, and computational linguistics dealing with the interactionbetween computers and human (natural) languages. Further, naturallanguage processing is the ability of a computer program to understandhuman speech as it is spoken. Even further, natural language processingallows for the analyzing, understanding and generating of languages thathumans use naturally in order to interface with computers in bothwritten and spoken contexts using natural human languages instead ofcomputer languages.

API program 112 determines API(s) (step 210). In other words, APIprogram 112 determines a group of storyboards or API(s) that will solvethe request received previously. In an embodiment, API program 112 mayuse a machine learning model, discussed previously, to determine a groupof storyboards or API(s) that will solve the request receivedpreviously. API program 112, via the machine learning model, willdetermine a group of storyboards or API(s) that will solve the requestreceived previously using one or more of the following: presetstoryboards created by users to perform specific tasks, informationabout storyboards and API(s) that are found in existing applicationsthat have been analyzed by the machine learning model to determine whattasks are performed by the storyboards and API(s), orders of storyboardsand API(s) based on storyboards and API(s) found in existingapplications analyzed by the machine learning model, information aboutlinks between APIs, and how data is passed between API(s). In anembodiment, the machine learning model used by API program 112 may bespecific to a user, a group of users, or specific for certain type ofstoryboard in an application to be created (i.e., commerce, security,etc.).

API program 112 presents API(s) (step 215). In other words, API program112 presents at least one determined storyboard to the user that willsolve the request received previously. In an embodiment, API program 112can provide only one storyboard to the user. In an embodiment, APIprogram 112 can provide multiple storyboards to the user. In anembodiment, API program 112 can provide only a single API to the user.

In an example, as shown in user interface 300, API program 112 returnstwo possible storyboards in response to the question “How can I addcheckout to my current web application?” 302, discussed previously. Thefirst storyboard, Retail checkout APIs 310 includes a Product 1—Commercestoryboard 312, Product 2—Tax storyboard 314, and Product 3—Addressverify storyboard 316. Product 1—Commerce storyboard 312 includes aplurality of APIs: AddToCart API, CheckInventory API, UpdateCartPriceAPI, AddCouponPromotion API, GetShippingCarriers API,SetShippingCarriers API, SetShippingAdress API, and GetPaymentMethodsAPI. Product 2—Tax storyboard 314 includes a single API: CalculateTaxAPI (vendor1). Product 3—Address verify storyboard 316 includes a singleAPI: VerifyAddress API. The second storyboard, Electronic Goods checkoutAPIs 320 includes a Product 1—Commerce storyboard 322, Product 2—Paymentstoryboard 324, and Product 3—Address verify storyboard 326. Product1—Commerce storyboard 322 includes a plurality of APIs: AddToCart API,CheckInventory API, UpdateCartPrice API, AddCouponPromotion API,GetShippingCarriers API, SetShippingCarriers API, and SetShippingAdressAPI. Product 2—Payment storyboard 324 includes a single API:capturePaymentAPI (vendor1). Product 3—Address verify storyboard 326includes a single API: VerifyAddress API.

In an embodiment, user interface 300 includes explore 317 and explore327 which allow a user to explore Retail checkout APIs 310 andElectronic Goods checkout APIs 320, respectively. Additionally, explore317 and explore 327 allow a user to modify and/or edit any storyboardsor add/remove APIs from storyboards. In an embodiment, user interface300 includes provision 318 and provision 328 which allows a user toindicate that they choose the supplied storyboards and send thestoryboards to another program to provision the APIs into applications.

API program 112 determines whether the user would like to filter thepresented API(s) (decision block 220). If there is a determination thatthe presented API(s) do not need to be filtered (decision block 220, nobranch), the user may then select one for provisioning and processingends. If there is a determination that there that the presented API(s)need to be filtered (decision block 220, yes branch), then API program112 determines modified API(s) (step 225). In an embodiment, thedetermination is made by a selection of a user. In an embodiment, if APIprogram 112 determines that the presented API(s) need to be filtered,API program 112 receives an indication as to how to filter the presentedAPI(s). For example, as shown in user interface 300, a user can indicatean industry 330 filter that includes a Finance filter, a Retail filterand an Electronic goods filter. Additionally, the example allows a userto indicate a software product 340 filter that includes a Commercefilter, a Health care filter, and a social media filter.

API program 112 determines modified API(s) (decision block 220). Inother words, API program 112 determines modified groups of storyboardsor API(s) that will solve the request received previously but aremodified based on the filters received from the user. In an embodiment,the modified API(s) may include a new group of storyboards or API(s)that are different than the group of storyboards or API(s) determined instep 210. In an embodiment, the modified API(s) may include some of thepreviously determined group of storyboards or API(s) in step 210 and newstoryboards or API(s) that are different than the previously determinedstoryboards or API(s). In an embodiment, the modified API(s) may includesome, but not all, of the previously determined group of storyboards orAPI(s) in step 210.

API program 112 presents modified API(s) (step 230). In other words, APIprogram 112 presents at least one determined modified storyboard to theuser that will solve the request received previously. In an embodiment,API program 112 can provide only one modified storyboard to the user. Inan embodiment, API program 112 can provide multiple modified storyboardsto the user. In an embodiment, API program 112 can provide only a singlemodified API to the user. In an embodiment, API program 112 can receivean indication to explore or provision the modified storyboard, similarto discussed in reference to step 215.

In any embodiment, API program 112 may update the machine learning modelbased upon input made by a user. For example, the machine learning modelmay be updated if the user decides to remove an API from a determinedstoryboard. In other words, if API program 112 determines a storyboardthat includes API A, API B, API C, and API D to solve problem Z and theuser deletes API C and provisions API A, API B, and API D to solveproblem Z, API program 112 will update the machine learning model, andmay, for the next request to solve problem Z form a user, only presentAPI A, API B, and API D.

In another example, the request might be “What APIs are used for atypical product display page?” Here, the order of the APIs matters. APIprogram 112 may return two different storyboards, one for business toconsumer (Retail) and another for business to business(Pharmaceuticals). In the example, Business to Consumer APIs mayinclude: Product 1: GetProductDetails API, GetAssociatedImages API,CheckInventory API. Product 2: EstimateTax API. Product 3:EstimateShipping API. Product 4: GetRatingAndReviewsAPI. In the example,a more Business to Business centric storyboard may have APIs such as:Product 1: GetProductDetails API, GetAssociatedImages API,CheckInventory, CheckContractEntitlement API, GetContractPrice API.Product 2: EstimateTax API. Product 3: EstimateShipping API.

FIG. 3 depicts computer system 400, that is an example of a system thatincludes API program 112. Computer system 400 includes processors 401,cache 403, memory 402, persistent storage 405, communications unit 407,input/output (I/O) interface(s) 406 and communications fabric 404.Communications fabric 404 provides communications between cache 403,memory 402, persistent storage 405, communications unit 407, andinput/output (I/O) interface(s) 406. Communications fabric 404 can beimplemented with any architecture designed for passing data and/orcontrol information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system. For example,communications fabric 404 can be implemented with one or more buses or acrossbar switch.

Memory 402 and persistent storage 405 are computer readable storagemedia. In this embodiment, memory 402 includes random access memory(RAM). In general, memory 402 can include any suitable volatile ornon-volatile computer readable storage media. Cache 403 is a fast memorythat enhances the performance of processors 401 by holding recentlyaccessed data, and data near recently accessed data, from memory 402.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 405 and in memory402 for execution by one or more of the respective processors 401 viacache 403. In an embodiment, persistent storage 405 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 405 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 405 may also be removable. Forexample, a removable hard drive may be used for persistent storage 405.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage405.

Communications unit 407, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 407 includes one or more network interface cards.Communications unit 407 may provide communications through the use ofeither or both physical and wireless communications links. Programinstructions and data used to practice embodiments of the presentinvention may be downloaded to persistent storage 405 throughcommunications unit 407.

I/O interface(s) 406 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface 406 may provide a connection to external devices 408 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 408 can also include portable computer readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention can be stored on such portablecomputer readable storage media and can be loaded onto persistentstorage 405 via I/O interface(s) 406. I/O interface(s) 406 also connectto display 409.

Display 409 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

What is claimed is:
 1. A method for predicting application programminginterface storytelling mapping, the method comprising the steps of:receiving, by one or more computer processors, a first indication from auser, wherein the indication includes a task to be added to anapplication programming interface storytelling mapping, whereinstorytelling mapping is an organized layout of multiple applicationprogramming interface, and wherein the task is performed by anapplication program interface component; determining, by one or morecomputer processors, a machine learning model; determining, by one ormore computer processors, at least one application programming interfacecomponent using the machine learning model and the task; providing, byone or more computer processors, two or more application storytellingmapping to the user, wherein each of the two or more applicationstorytelling mapping includes the at least one application programminginterface; receiving, by one or more computer processors, a secondindication from the user, wherein the second indication is a filter; andresponsive to receiving the second indication from the user, updating,by the one or more computer processors, the two or more applicationstorytelling mapping using the machine learning model, the task, and thefilter; and providing, by one or more computer processors, the updatedtwo or more application storytelling mapping to the user.
 2. The methodof claim 1, wherein the step of determining, by one or more computerprocessors, a machine learning model comprise: creating, by one or morecomputer processors, one or more machine learning models using one ormore of the following: information about at least one preset existingapplication programming interface created to perform at least one task,information about at least one existing application programing interfaceused in an existing at least one application and an associated taskperformed by the existing at least one application, information about anorder of the at least one application programing interface used in theexisting at least one applications, information about links between theat least one application programming interface, and information abouthow data is passed between the at least one application programminginterface; and determining, by one or more computer processors, amachine learning model of the at least one or more machine models basedon one or more of the following: the user or the task.
 3. The method ofclaim 1, wherein the at least one application programming interface isin a first order to perform the task.
 4. The method of claim 1, whereinthe first indication is analyzed using natural language processing todetermine the task.
 5. The method of claim 2, further comprising:receiving, by one or more computer processors, at least one update toone or more of the following: information about at least one presetexisting application programming interface created to perform at leastone task, information about at least one existing application programinginterface used in an existing at least one application and an associatedtask performed by the existing at least one application, informationabout an order of the at least one application programing interface usedin the existing at least one applications, information about linksbetween the at least one application programming interface, andinformation about how data is passed between the at least oneapplication programming interface; and updating, by one or more computerprocessors, the one or more machine learning models based on the atleast one update.
 6. A computer program product for predictingapplication programming interface storytelling mapping, the computerprogram product comprising: one or more computer readable storage media;and program instructions stored on the one or more computer readablestorage media, the program instructions comprising: program instructionsto receive a first indication from a user, wherein the indicationincludes a task to be added to an application programming interfacestorytelling mapping, wherein storytelling mapping is an organizedlayout of multiple application programming interface, and wherein thetask is performed by an application program interface component; programinstructions to determine a machine learning model; program instructionsto determine at least one application programming interface using themachine learning model and the task; program instructions to provide twoor more application storytelling mapping to the user, wherein each ofthe two or more application storytelling mapping includes the at leastone application programming interface; program instructions to receive asecond indication from the user, wherein the second indication is afilter; and program instructions, responsive to receiving the secondindication, to update the two or more application storytelling mappingusing the machine learning model, the task, and the filter; and programinstructions to provide the updated two or more application storytellingmapping to the user.
 7. The computer program product of claim 6, whereinthe program instructions to determine a machine learning model comprise:program instructions to create one or more machine learning models usingone or more of the following: information about at least one presetexisting application programming interface created to perform at leastone task, information about at least one existing application programinginterface used in an existing at least one application and an associatedtask performed by the existing at least one application, informationabout an order of the at least one application programing interface usedin the existing at least one applications, information about linksbetween the at least one application programming interface, andinformation about how data is passed between the at least oneapplication programming interface; and program instructions to determinea machine learning model of the at least one or more machine modelsbased on one or more of the following: the user or the task.
 8. Thecomputer program product of claim 6, wherein the at least oneapplication programming interface is in a first order to perform thetask.
 9. The computer program product of claim 6, wherein the firstindication is analyzed using natural language processing to determinethe task.
 10. The computer program product of claim 7, furthercomprising program instructions, stored on the one or more computerreadable storage media, to: receive at least one update to one or moreof the following: information about at least one preset existingapplication programming interface created to perform at least one task,information about at least one existing application programing interfaceused in an existing at least one application and an associated taskperformed by the existing at least one application, information about anorder of the at least one application programing interface used in theexisting at least one applications, information about links between theat least one application programming interface, and information abouthow data is passed between the at least one application programminginterface; and update the one or more machine learning models based onthe at least one update.
 11. A computer system for predictingapplication programming interface storytelling mapping, the computersystem comprising: one or more computer processors; one or more computerreadable storage media; and program instructions stored on the one ormore computer readable storage media for execution by at least one ofthe one or more computer processors, the program instructionscomprising: program instructions to receive a first indication from auser, wherein the indication includes a task to be added to anapplication programming interface storytelling mapping, whereinstorytelling mapping is an organized layout of multiple applicationprogramming interface, and wherein the task is performed by anapplication program interface component; program instructions todetermine a machine learning model; program instructions to determine atleast one application programming interface using the machine learningmodel and the task; program instructions to provide two or moreapplication storytelling mapping to the user, wherein each of the two ormore application storytelling mapping includes the at least oneapplication programming interface; program instructions to receive asecond indication from the user, wherein the second indication is afilter; and program instructions, responsive to receiving the secondindication, to update the two or more application storytelling mappingusing the machine learning model, the task, and the filter; and programinstructions to provide the updated two or more application storytellingmapping to the user.
 12. The computer system of claim 11, wherein theprogram instructions to determine a machine learning model comprise:program instructions to create one or more machine learning models usingone or more of the following: information about at least one presetexisting application programming interface created to perform at leastone task, information about at least one existing application programinginterface used in an existing at least one application and an associatedtask performed by the existing at least one application, informationabout an order of the at least one application programing interface usedin the existing at least one applications, information about linksbetween the at least one application programming interface, andinformation about how data is passed between the at least oneapplication programming interface; and program instructions to determinea machine learning model of the at least one or more machine modelsbased on one or more of the following: the user or the task.
 13. Thecomputer system of claim 11, wherein the at least one applicationprogramming interface is in a first order to perform the task.
 14. Thecomputer system of claim 12, further comprising program instructionsstored on the one or more computer readable storage media for executionby at least one of the one or more computer processors, to: receive atleast one update to one or more of the following: information about atleast one preset existing application programming interface created toperform at least one task, information about at least one existingapplication programing interface used in an existing at least oneapplication and an associated task performed by the existing at leastone application, information about an order of the at least oneapplication programing interface used in the existing at least oneapplications, information about links between the at least oneapplication programming interface, and information about how data ispassed between the at least one application programming interface; andupdate the one or more machine learning models based on the at least oneupdate.